<?php

require_once 'Basic.php';

class FormFieldAge extends FormFieldType {
  
  private $ageMin;
  private $ageMax;
  
  /**
   * 
   * @param int $ageMin Limite inferior, inclusivo, para a idade.
   * @param int $ageMax Limite superior, inclusivo, para a idade.
   */
  public function __construct($ageMin = 0, $ageMax = 150) {
    $this->ageMin = $ageMin;
    $this->ageMax = $ageMax;
    $this->htmlId = null;
    $this->htmlClass = "ageField";
    $this->inputSize = 5;
  }
  
  /**
   * 
   * @param string $input Deve estar sem espaçamentos nos extremos (use trim).
   */
  public function validate($input) {
    if(preg_match("%^[0-9]+$%", $input) === 1) {
      $age = intval($input);
      if($age >= $this->ageMin && $age <= $this->ageMax) {
        return true;
      }
      else {
        return "A idade deve estar entre " . $this->ageMin . " e " . $this->ageMax .
               ". Foi dado <span class='userInput'>${age}</span>.";
      }
    }
    else {
      return "A idade deve ser um n&uacute;mero contendo apenas digitos de 0 a 9. Foi dado " . 
             "<span class='userInput'>${input}</span>";
    }
  }
  
  public function getHtml($name, $value = null) {
    return $this->commonHtml($name, $value);
  }
  
  public function clearHtmlClass() {
    $this->htmlClass = "ageField";
  }
  
}
